<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    //1.封装
    //instance随便命名
    let instance=axios.create({
        baseURL:`http://localhost:3000`,//集中配置请求头
        headers:{
            'token':'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aW1lIjoxNzQwNDU0NDE2MTMwLCJleHBpcmUiOjg2NDAwMDAwLCJpYXQiOjE3NDA0NTQ0MTZ9.uhJNKeShgbEY-nv9ucoNEkswEpsQ6Y2-ZaPMDsPYCl0'
        }
    })

    //2.挂载拦截器
    //请求拦截器:请求发起前需要做的动作,所有动作前面
    instance.interceptors.request.use(function(config){
        //config:请求的配置
        console.log(config);
        return config//配置项进行集中配置,非常重要
    },function(error){
        //error:请求的错误
        console.log(error);
        return Promise.reject(error)
    })
    //响应拦截器:请求结果被提供给具体的get,post,之前做一些逻辑处理,结束请求前面
    instance.interceptors.response.use(response=>{
        //res:响应的结果
        console.log(response.data.msg);
        //console.log(res);
        return response//放行,重点 
    },function(error){
        //error:响应的错误
        console.log(error);
        return Promise.reject(error)
    })

    //3.使用分装后的
    let request1=instance.get('/fanji')//.then(result=>{
    //     console.log(result);
    //     // alert(res.data.msg)//弹出,在请求结束后为用户明确提示
    // })
    //post
    let request2= instance.post('/fanji',{list:[]}).then(res=>{
        console.log(res);
        // alert(res.data.msg)
    })
    Promise.all([request1,request2]).then(res=>{
        console.log(res);//两个都成功才成功
    })
    Promise.race([request1,request2]).then(res=>{
        console.log(res);//先到先得
    })
</script>
</html>